![]() |
![]() |
|
rtk 20022002.1.1 (popravi)1. podnalogaNaročniki večjih količin tovora se običajno odločajo za prevoz tovora z ladjo.
Ko zabojniki prispejo v luko, jih morajo tam uskladiščiti, vse dokler ponje
ne pride naročnik ali pa jih morajo natovoriti na vlak. V neki luki zabojnike
nalagajo enega ob drugega in ko zapolnijo celo vrsto, se lotijo nalaganja v
drugo vrsto, nato tretjo in tako dalje. Ko se zapolni cela površina, začnejo
zabojnike nalagati še na naslednjo višino v enakem zaporedju kot prej (torej
prvi zabojnik na drugi višini pride položen na prvi zabojnik v prvi višini
itd.). Podano imamo število zabojnikov v vsaki vrsti NalogaPopravi program
Primer postavitve zabojev v plasteh za
Zabojnik s številko 16 na gornji sliki je četrti zabojnik v prvi vrsti druge plasti. Vhodni podatkiŠtevila Izhodni podatkiPoložaj zabojnika (plast, vrsta, stolpec) v obliki niza. PrimerVhod
Izhod
Uradna rešitevdef zabojnik(n,m,l,z): plast = 1 + (z - 1) / (n * m) vrsta = 1 + ((z - 1) % (n * m)) / n stolpec = 1 + ((z - 1) % (n * m)) % n izpis = 'Plast: ' + str(int(plast)) + ', ' izpis += 'Vrsta: ' + str(int(vrsta)) + ', ' izpis += 'Stolpec: ' + str(int(stolpec)) return izpis 2002.1.2 (popravi)1. podnalogaLiliput je majhno mesto z veliko avtobusnimi postajami. Vse proge mestnih
avtobusov so krožne. Vsaka postaja pa pripada natančno eni progi, torej nobena
dva avtobusa nikoli ne obiščeta iste avtobusne postaje. Težava je v tem, da
Liliputanci objavljajo vozne rede svojih avtobusov na prav poseben način.
Avtobusne postaje so oštevilčene s števili od Za primer vzemimo zaporedje števil Prvo število v zaporedju je NalogaTvoja naloga je popraviti program
Vhodni podatkiZaporedje števil, podano v seznamu. Omejitve vhodnih podatkov
Izhodni podatkiSeznam z vsemi avtobusnimi programi predstavljenimi kot seznam postaj. Zadnji element seznama pa je dolžina najdaljše proge. PrimerVhod
Izhod
Uradna rešitevdef avtobus(vozni_red): N = len(vozni_red) obiskane_postaje = [False for i in range(N)] najdaljsa_proga = 0 proge = [] for j in range(N): if not obiskane_postaje[j]: obiskane_postaje[j] = True proga = [j+1] k = vozni_red[j] while k != j+1: proga.append(k) obiskane_postaje[k-1] = True k = vozni_red[k-1] proge.append(proga) if len(proga) > najdaljsa_proga: najdaljsa_proga = len(proga) proge.append(najdaljsa_proga) return proge 2002.1.3 (popravi)1. podnalogaPri uporabi bančne kartice moramo dokazati, da poznamo kodo pin (osebno identifikacijsko številko). Podobno v deželi PinLand uporabljajo štirimestne črkovne kode pin tudi za dostop do pomembnih podatkov na mreži. Pri razbijanju kode pin si pomagajmo s poskušanjem: vemo, kakšne so dovoljene kode, in preizkusimo vse možnosti. Za testiranje je na voljo funkcija Za kodo pin veljata naslednji omejitvi:
NalogaPopravi program
Vhodni podatkiFunkcija nima vhodnega podatka. Izhodni podatkiNiz štirih znakov, ki predstavljajo pravo pin kodo. Uradna rešitevdef test(poskus): '''Funkcija vrne True, če je pin pravilen in False sicer.''' st = [66,90,88,65,78,30] stevec = 0 for i in poskus[::-1]: a = ord(i) if a == st[stevec]: stevec += 1 else: return False return True def pin(): '''Funkcija s pomočjo funkcije test in poskušanjem najde pravo pin in jo izpiše.''' mozni_znaki = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' poskus = [0,0,0,0] for a in mozni_znaki: poskus[0] = a for b in mozni_znaki: poskus[1] = b for c in mozni_znaki: poskus[2] = c for d in mozni_znaki: poskus[3] = d poskus_str = ''.join(poskus) if test(poskus_str): return poskus_strMesto objave ob koncu projekta 15.9.2018 |